/*
 * Copyright (c) China Telecom Cloud Technology Co., Ltd. 2024-2025. All rights reserved.
 */
#ifndef KVCACHE_PUBLISHER_H
#define KVCACHE_PUBLISHER_H

#include "KvcBaseDefine.h"

/**
 *! @brief 发布者类型
 *
 */
typedef enum {
#ifdef USE_DYNAMO
    PUBLISHER_TYPE_DYNAMO,
#endif
    PUBLISHER_BUTT,
} KVCachePublishType;



class KVCachePublisher {
protected:
    KVCachePublishType _type;

public:
    KVCachePublisher();

    ~KVCachePublisher() = default;

    /**
     *! @brief 注册KV Cache发布者(当前只支持Dynamo)
     *
     * @param pool
     */
    virtual void reg(MemoryPool *pool) noexcept = 0;



    /**
     *! @brief 注销KV Cache发布者
     *
     */
    virtual void unreg() noexcept = 0;
};

#endif // KVCACHE_PUBLISHER_H